package com.ruoyi.mall.api.domian;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.system.api.domain.Attachment;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 商品对象 product
 * 
 * @author luogongquan
 * @date 2024-09-25
 */
public class Product extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String name;

    /** 标题 */
    @Excel(name = "标题")
    private String title;

    /** 产品图片url */
    @Excel(name = "产品图片url")
    private String mainImage;

    /** 生产地址 */
    @Excel(name = "生产地址")
    private String produceAddress;

    /** 品牌厂家 */
    @Excel(name = "品牌厂家")
    private String brand;

    /** 状态（1：正常 0：停用） */
    @Excel(name = "状态", readConverterExp = "0=：正常,1=：停用")
    private String status;

    /** 价格 */
    @Excel(name = "价格")
    private BigDecimal price;

    /** 上架状态（1：未上架  2：已上架） */
    @Excel(name = "上架状态", readConverterExp = "1=：未上架,2=：已上架")
    private String listingFlag;

    /** 疗效（如脾虚，气短，体寒......） */
    @Excel(name = "疗效", readConverterExp = "如=脾虚，气短，体寒......")
    private String therapeuticEffect;


    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 主要成分 */
    @Excel(name = "主要成分")
    private String ingredients;

    /** 产品其他图片id */
    @Excel(name = "产品其他图片id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long otherImage;

    /** 安全资质图片id */
    @Excel(name = "安全资质图片id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long qualificationsImage;

    /** 症状标签 */
    private List<Long> symptomTags;

    private List<ProductTagBind> productTagBinds;

    private String tagDescribe;

    private List<AttributeValue> attributeValueList;

    private List<Attachment> attachmentList;

    private Integer num;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long orderId;
    /**
     * 规格
     */
    private String specifications;

    public String getSpecifications() {
        return specifications;
    }

    public void setSpecifications(String specifications) {
        this.specifications = specifications;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Integer getNum() {
        return num;
    }

    public void setNum(Integer num) {
        this.num = num;
    }

    public List<Attachment> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<Attachment> attachmentList) {
        this.attachmentList = attachmentList;
    }

    public List<AttributeValue> getAttributeValueList() {
        return attributeValueList;
    }

    public void setAttributeValueList(List<AttributeValue> attributeValueList) {
        this.attributeValueList = attributeValueList;
    }

    public String getTagDescribe() {
        return tagDescribe;
    }

    public void setTagDescribe(String tagDescribe) {
        this.tagDescribe = tagDescribe;
    }

    public List<ProductTagBind> getProductTagBinds() {
        return productTagBinds;
    }

    public void setProductTagBinds(List<ProductTagBind> productTagBinds) {
        this.productTagBinds = productTagBinds;
    }

    public List<Long> getSymptomTags() {
        return symptomTags;
    }

    public void setSymptomTags(List<Long> symptomTags) {
        this.symptomTags = symptomTags;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setTitle(String title) 
    {
        this.title = title;
    }

    public String getTitle() 
    {
        return title;
    }
    public void setMainImage(String mainImage) 
    {
        this.mainImage = mainImage;
    }

    public String getMainImage() 
    {
        return mainImage;
    }
    public void setProduceAddress(String produceAddress) 
    {
        this.produceAddress = produceAddress;
    }

    public String getProduceAddress() 
    {
        return produceAddress;
    }
    public void setBrand(String brand) 
    {
        this.brand = brand;
    }

    public String getBrand() 
    {
        return brand;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }
    public void setListingFlag(String listingFlag) 
    {
        this.listingFlag = listingFlag;
    }

    public String getListingFlag() 
    {
        return listingFlag;
    }
    public void setTherapeuticEffect(String therapeuticEffect) 
    {
        this.therapeuticEffect = therapeuticEffect;
    }

    public String getTherapeuticEffect() 
    {
        return therapeuticEffect;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setIngredients(String ingredients) 
    {
        this.ingredients = ingredients;
    }

    public String getIngredients() 
    {
        return ingredients;
    }
    public void setOtherImage(Long otherImage) 
    {
        this.otherImage = otherImage;
    }

    public Long getOtherImage() 
    {
        return otherImage;
    }
    public void setQualificationsImage(Long qualificationsImage) 
    {
        this.qualificationsImage = qualificationsImage;
    }

    public Long getQualificationsImage() 
    {
        return qualificationsImage;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("title", getTitle())
            .append("mainImage", getMainImage())
            .append("produceAddress", getProduceAddress())
            .append("brand", getBrand())
            .append("remark", getRemark())
            .append("status", getStatus())
            .append("price", getPrice())
            .append("listingFlag", getListingFlag())
            .append("therapeuticEffect", getTherapeuticEffect())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("ingredients", getIngredients())
            .append("otherImage", getOtherImage())
            .append("qualificationsImage", getQualificationsImage())
            .toString();
    }
}
